import com.asman.customerview.extensions.isMulti

/**
 * 是否是手机号
 */
fun String?.isMobile(): Boolean {
    return if (this == null) {
        false
    } else {
        this.isNotEmpty() && this.length == 11 && this.startsWith("1")
    }
}

/**
 * 手机号中间4位替换为****
 */
fun String?.replaceMobileStar(): String? {
    if (this.isMobile()) {
        return this?.replaceRange(4, 7, "****")
    }
    return this
}

/**
 * 根据连接地址，获取文件名
 */
fun String?.getFileName(): String? {
    return this?.substring(this.lastIndexOf("/") + 1)
}

/**
 * oss压缩路径  视频除外
 */
fun String?.ossZip(h: Int = 600): String? {
    //OSS 压缩 对于私有图片 不进行压缩  simg.asman.com.cn
    if (this.isMulti()) return this
    return if (this?.contains("simg.asman.com.cn") == true) {
        this
    } else if (this?.contains("asman.com.cn") == true) {
        "$this?x-oss-process=image/resize,h_${h},p_70"
    } else {
        this
    }
}

/**
 * oss压缩路径  视频除外
 */
fun String?.ossZipSmall(): String? {
    return ossZip(200)
}

/**
 * oss压缩路径  视频除外
 */
fun String?.ossZipBig(): String? {
    return ossZip(800)
}

/**
 * 先按照控件宽高 大的缩放，然后根据控件大小裁切
 *
 * @param {string} orginUrl 图片原地址
 * @param {number} width 控件一倍的宽度
 * @param {number} height 控件一倍的高度
 * @param {number} scale 缩放的倍数，需要效果的时候可以放大点，比如1.5， 2，
 */
fun String?.ossZip(width: Float, height: Float, scale: Float? = 1.0f): String? {
    if (this.isMulti()) return this
    //OSS 压缩 对于私有图片 不进行压缩  simg.asman.com.cn
    if (this?.contains("simg.asman.com.cn") != false) {
        return this
    }
    val scaleWidth = width.times(scale!!).toInt()//必须为Int
    val scaleHeight = height.times(scale).toInt()//必须为Int
    if (scaleWidth > scaleHeight) {
        return "${this}?x-oss-process=image/resize,w_${scaleWidth}/crop,w_${scaleWidth},h_${scaleHeight},g_center"
    }
    return "${this}?x-oss-process=image/resize,h_${scaleHeight}/crop,w_${scaleWidth},h_${scaleHeight},g_center"
}

/**
 * 富文本适配
 */
fun String?.richText(): String? {
    val head = ("<head>"
            + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> "
            + "<style>img{max-width: 100%; width:auto; height:auto;}</style>"
            + "</head>")
    return "<html>$head<body>$this</body></html>"
}
